package com.bigpang.framework.redis.baseopt.hash;

import redis.clients.jedis.Jedis;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @Author YongQiang
 * @Date 2021/6/4 9:13
 * @Version 1.0
 */
public class HashDemo {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("10.130.132.137",6379);

        //1	HDEL key field2 [field2] 删除一个或多个哈希表字段
        //2	HEXISTS key field 查看哈希表 key 中，指定的字段是否存在。
        //3	HGET key field 获取存储在哈希表中指定字段的值/td>
        //4	HGETALL key 获取在哈希表中指定 key 的所有字段和值
        //5	HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。
        //6	HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
        //7	HKEYS key 获取所有哈希表中的字段
        System.out.println(jedis.hkeys("HASHKEY1"));
        //8	HLEN key 获取哈希表中字段的数量
        System.out.println(jedis.hlen("HASHKEY1"));
        //9	HMGET key field1 [field2] 获取所有给定字段的值
        System.out.println(jedis.hmget("HASHKEY1", "field1", "field2"));
        //10	HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
        Map<String, String> hashMap = new HashMap<String, String>(5);
        hashMap.put("field1", "hash1");
        hashMap.put("field2", "hash2");
        hashMap.put("field3", "hash3");
        hashMap.put("field4", "hash4");
        hashMap.put("field5", "hash5");
        jedis.hset("HASHKEY1", hashMap);
        //11	HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。
        jedis.hset("HASHKEY2", "field1", "hash1");
        //12	HSETNX key field value 只有在字段 field 不存在时，设置哈希表字段的值。
        //13	HVALS key 获取哈希表中所有值
        System.out.println(jedis.hvals("HASHKEY1"));
        //14	HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对。
        jedis.close();
    }
}
